//
//  MainViewController.swift
//  新浪微博
//
//  Created by Lembo on 16/1/30.
//  Copyright © 2016年 apple. All rights reserved.
//

import UIKit

class MainViewController: UITabBarController {
    
    // 属性
    let mainTabbar = MainTabbar()
    
    //MARK: 按钮监听事件
    //unrecognized selector sent to instance 0x7fdeb2d10040  找不到该方法
    //1.不希望外界访问改方法 可以加上 private关键字 来限制访问
    //2.一旦targe - action 对应的方法添加了private 之后 运行循环就无法找到该方法
    //3.在方法前添加 @objc 告诉运行循环 这个方法是基于OC消息动态派发机制来执行
    @objc private func plusBtnDidClick() {
        print(__FUNCTION__)
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        print(tabBar.classForCoder)

        setValue(mainTabbar, forKey: "tabBar")
        let actionName = "plusBtnDidClick"
        
        // 直接在方法的参数中传递字符串 会直接将字符串转化为selector类型，但是不能够直接传递字符串的引用
        mainTabbar.plusBtn.addTarget(self, action: Selector(actionName), forControlEvents: .TouchUpInside)
        
        print(tabBar.classForCoder)
        
        // 添加子视图控制器
      addChildViewController()
    }
    
    // 私有函数 只有在本类中才可以访问
    private func addChildViewController() {
        addChildViewController(HomeTVController(), title: "首页", imageName: "tabbar_home")
        addChildViewController(MessageTVController(), title: "消息", imageName: "tabbar_message_center")
        addChildViewController(DiscoverTVController(), title: "发现", imageName: "tabbar_discover")
        addChildViewController(ProfileTVController(), title: "我", imageName: "tabbar_profile")
    }

    // MARK：添加单个视图控制器
    private func addChildViewController(vc: UIViewController, title: String,imageName: String) {
        // 设置渲染颜色
//        tabBar.tintColor = UIColor.orangeColor()
        let nav = UINavigationController(rootViewController: vc)
        vc.title = title
        
        // 设置tabbaritem 的图片
        vc.tabBarItem.image = UIImage(named: imageName)
        
        addChildViewController(nav)
    }
    
    
    


    
    
    
    
    
    
    
    





}
